home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 February / EnigmA AMIGA RUN 34 (1999)(G.R. Edizioni)(IT)[!][issue 1999-02].iso / earcd / devel / libx11 / include / x11 / extensions / pex.h < prev    next >
C/C++ Source or Header  |  1999-01-01  |  27KB  |  922 lines

  1. /* $XConsortium: PEX.h,v 5.3 91/08/26 12:29:34 rws Exp $ */
  2.  
  3. /***********************************************************
  4. Copyright 1989, 1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
  5.  
  6.                         All Rights Reserved
  7.  
  8. Permission to use, copy, modify, and distribute this software and its 
  9. documentation for any purpose and without fee is hereby granted, 
  10. provided that the above copyright notice appear in all copies and that
  11. both that copyright notice and this permission notice appear in 
  12. supporting documentation, and that the names of Sun Microsystems,
  13. the X Consortium, and MIT not be used in advertising or publicity 
  14. pertaining to distribution of the software without specific, written 
  15. prior permission.  
  16.  
  17. SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
  18. INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT 
  19. SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
  20. DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  21. WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  22. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  23. SOFTWARE.
  24.  
  25. ******************************************************************/
  26.  
  27.  
  28. #ifndef PEX_H
  29. #define PEX_H
  30.  
  31. #ifdef LOCAL_PEX_NAME
  32. #define PEX_NAME_STRING        LOCAL_PEX_NAME
  33. #else
  34. #define PEX_NAME_STRING        "X3D-PEX"
  35. #endif
  36.  
  37. /* Matches revision 5.0P */
  38.  
  39. #define PEX_PROTO_MAJOR        5    /* current protocol version */
  40. #define PEX_PROTO_MINOR        0    /* current minor version */
  41.  
  42. /* Subsets */
  43. #define PEXCompleteImplementation    0
  44. #define PEXImmediateModeOnly        1
  45. #define PEXPhigsWksOnly            2
  46.  
  47. /* Resources */
  48. #define PEXAlreadyFreed         1
  49.  
  50. /* Asf Attributes */
  51.  
  52. /* Masks for setting Asf's */
  53. #define PEXMarkerTypeAsf         (1L<<0)
  54. #define PEXMarkerScaleAsf         (1L<<1)
  55. #define PEXMarkerColourAsf         (1L<<2)
  56. #define PEXTextFontIndexAsf         (1L<<3)
  57. #define PEXTextPrecAsf             (1L<<4)
  58. #define PEXCharExpansionAsf         (1L<<5)
  59. #define PEXCharSpacingAsf         (1L<<6)
  60. #define PEXTextColourAsf         (1L<<7)
  61. #define PEXLineTypeAsf             (1L<<8)
  62. #define PEXLineWidthAsf             (1L<<9)
  63. #define PEXLineColourAsf        (1L<<10)
  64. #define PEXCurveApproxAsf        (1L<<11)
  65. #define PEXPolylineInterpAsf        (1L<<12)
  66. #define PEXInteriorStyleAsf        (1L<<13)
  67. #define PEXInteriorStyleIndexAsf    (1L<<14)
  68. #define PEXSurfaceColourAsf        (1L<<15)
  69. #define PEXSurfaceInterpAsf        (1L<<16)
  70. #define PEXReflectionModelAsf        (1L<<17)
  71. #define PEXReflectionAttrAsf        (1L<<18)
  72. #define PEXBfInteriorStyleAsf        (1L<<19)
  73. #define PEXBfInteriorStyleIndexAsf    (1L<<20)
  74. #define PEXBfSurfaceColourAsf        (1L<<21)
  75. #define PEXBfSurfaceInterpAsf        (1L<<22)
  76. #define PEXBfReflectionModelAsf        (1L<<23)
  77. #define PEXBfReflectionAttrAsf        (1L<<24)
  78. #define PEXSurfaceApproxAsf        (1L<<25)
  79. #define PEXSurfaceEdgesAsf        (1L<<26)
  80. #define PEXSurfaceEdgeTypeAsf        (1L<<27)
  81. #define PEXSurfaceEdgeWidthAsf        (1L<<28)
  82. #define PEXSurfaceEdgeColourAsf        (1L<<29)
  83. #define PEXMaxAsfShift    29
  84.  
  85. /* Asf Values */
  86. #define PEXBundled        0
  87. #define PEXIndividual        1
  88.  
  89. /* Composition */
  90. #define PEXPreConcatenate    0
  91. #define PEXPostConcatenate    1
  92. #define PEXReplace        2
  93.  
  94. /* Cull mode */
  95. /* 0 None */
  96. #define PEXBackFaces    1
  97. #define PEXFrontFaces    2
  98.  
  99. /* Curve Type  and Surface Type */
  100. #define PEXRational    0
  101. #define PEXNonRational    1
  102.  
  103. /* Edit Mode */
  104. #define PEXStructureInsert    0
  105. #define PEXStructureReplace    1 
  106.  
  107. /* Whence values */
  108. #define PEXBeginning    0
  109. #define PEXCurrent    1
  110. #define PEXEnd        2
  111.  
  112. /* Element Search */
  113. #define PEXNotFound    1
  114. #define PEXFound    2
  115.  
  116. /* GetEnumeratedType return format */
  117. #define PEXETIndex    1
  118. #define PEXETMnemonic    2
  119. #define PEXETBoth    3
  120.  
  121. /* Enum Types */
  122. #define PEXETMarkerType                 1
  123. #define PEXETATextStyle                 2
  124. #define PEXETInteriorStyle             3
  125. #define PEXETHatchStyle                 4
  126. #define PEXETLineType                 5
  127. #define PEXETSurfaceEdgeType             6
  128. #define PEXETPickDeviceType             7
  129. #define PEXETPolylineInterpMethod         8
  130. #define PEXETCurveApproxMethod             9
  131. #define PEXETReflectionModel            10
  132. #define PEXETSurfaceInterpMethod        11
  133. #define PEXETSurfaceApproxMethod        12
  134. #define PEXETModelClipOperator            13
  135. #define PEXETLightType                14
  136. #define PEXETColourType                15
  137. #define PEXETFloatFormat            16
  138. #define PEXETHlhsrMode                17
  139. #define PEXETPromptEchoType            18
  140. #define PEXETDisplayUpdateMode            19
  141. #define PEXETColourApproxType            20
  142. #define PEXETColourApproxModel            21
  143. #define PEXETGDP                22
  144. #define PEXETGDP3                23
  145. #define PEXETGSE                24
  146. #define PEXETTrimCurveApproxMethod        25
  147. #define PEXETRenderingColourModel        26
  148. #define PEXETParaSurfCharacteristics        27
  149.  
  150. /* Renderer state */
  151. #define PEXIdle     0
  152. #define PEXRendering    1
  153.  
  154. /* Flags (e.g., Switches, Visibility, and Edges) */
  155. #define PEXOff    0
  156. #define PEXOn    1
  157.  
  158. /* Shape hints */
  159. /* Complex, Nonconvex, Convex, are defined  as 0, 1, 2 in X.h */
  160. #define PEXComplex        0
  161. #define PEXNonconvex        1
  162. #define PEXConvex        2
  163. #define PEXUnknownShape        3
  164.  
  165. /* Contour hints */
  166. #define PEXDisjoint        0
  167. #define PEXNested        1
  168. #define PEXIntersecting        2
  169. #define PEXUnknownContour    3
  170.  
  171. /* Table Type */
  172. #define PEXLineBundleLUT     1
  173. #define PEXMarkerBundleLUT     2
  174. #define PEXTextBundleLUT     3
  175. #define PEXInteriorBundleLUT     4
  176. #define PEXEdgeBundleLUT     5
  177. #define PEXPatternLUT         6
  178. #define PEXTextFontLUT         7
  179. #define PEXColourLUT         8
  180. #define PEXViewLUT         9
  181. #define PEXLightLUT        10
  182. #define PEXDepthCueLUT        11
  183. #define PEXColourApproxLUT    12
  184. #define PEXMaxTableType        12
  185.  
  186. /* Status in GetTableEntry */
  187. #define PEXDefaultEntry    0
  188. #define PEXDefinedEntry    1
  189.  
  190. /* ValueType in GetTableEntr{y|ies} */
  191. #define PEXSetValue        0
  192. #define PEXRealizedValue    1
  193.  
  194. /* Constants for Path and Vertical and Horizontal alignment */
  195. #define PEXPathRight    0
  196. #define PEXPathLeft    1
  197. #define PEXPathUp    2
  198. #define PEXPathDown    3
  199. #define PEXValignNormal    0
  200. #define PEXValignTop    1
  201. #define PEXValignCap    2
  202. #define PEXValignHalf    3
  203. #define PEXValignBase    4
  204. #define PEXValignBottom    5
  205. #define PEXHalignNormal    0
  206. #define PEXHalignLeft    1
  207. #define PEXHalignCenter    2
  208. #define PEXHalignRight    3
  209.  
  210. /* Text precision */
  211. #define PEXStringPrecision    0
  212. #define PEXCharPrecision    1
  213. #define PEXStrokePrecision    2
  214.  
  215. /* Character Set Widths */
  216. #define PEXCSByte    0
  217. #define PEXCSShort    1
  218. #define PEXCSLong    2
  219.  
  220. /* Update State */
  221. #define PEXNotPending    0
  222. #define PEXPending    1
  223.  
  224. /* Visual State */
  225. #define PEXCorrect    0
  226. #define PEXDeferred    1
  227. #define PEXSimulated    2
  228.  
  229. /* Display State */
  230. #define PEXEmpty    0
  231. #define PEXNotEmpty    1
  232.  
  233. /* Buffer Mode */
  234. #define PEXSingleBuffered    0
  235. #define PEXDoubleBuffered    1
  236.  
  237. /* Dynamic types */
  238. #define PEXIMM    0
  239. #define PEXIRG    1
  240. #define PEXCBS    2
  241.  
  242. /* Geometric attributes (Vertex, Facet) */
  243. #define PEXGAColour    0x0001
  244. #define PEXGANormal    0x0002
  245. #define PEXGAEdges    0x0004
  246.  
  247. /* Pick Status */
  248. #define PEXNoPick    0
  249. #define PEXOk        1
  250.  
  251. /* Pick Echo Switch */
  252. #define PEXNoEcho    0
  253. #define PEXEcho        1
  254.  
  255. /* Pick Path Order */
  256. #define PEXTopFirst     0
  257. #define PEXBottomFirst  1
  258.  
  259. /* Items for GetStructureInfo */
  260. #define PEXElementPtr        0x0001
  261. #define PEXNumElements        0x0002
  262. #define PEXLengthStructure    0x0004
  263. #define PEXHasRefs        0x0008
  264. #define PEXEditMode        0x0010
  265.  
  266. /* Flags for GetStructuresInNetwork */
  267. #define PEXAll             0
  268. #define PEXOrphans         1
  269.  
  270. /* Path part for GetAncestors */
  271. #define PEXTopPart    0
  272. #define PEXBottomPart    1
  273.  
  274. /* Direction for ElementSearch */
  275. #define PEXForward         0
  276. #define PEXBackward        1
  277.  
  278. /* Nameset changes */
  279. #define PEXNSAdd             0
  280. #define PEXNSRemove          1
  281. #define PEXNSReplace         2
  282.  
  283. /* Priorities */
  284. #define PEXHigher          0
  285. #define PEXLower           1
  286.  
  287. /* Enumerated Type Descriptors */
  288.  
  289. /* Marker Type */
  290. #define PEXMarkerDot        1
  291. #define PEXMarkerCross        2
  292. #define PEXMarkerAsterisk    3
  293. #define PEXMarkerCircle        4
  294. #define PEXMarkerX        5
  295. /* ATextStyle */
  296. #define PEXATextNotConnected    1
  297. #define PEXATextConnected    2
  298. /* InteriorStyle */
  299. #define PEXInteriorStyleHollow    1
  300. #define PEXInteriorStyleSolid    2
  301. #define PEXInteriorStylePattern    3
  302. #define PEXInteriorStyleHatch    4
  303. #define PEXInteriorStyleEmpty    5
  304. /* HatchStyle */
  305. /* LineType */
  306. #define PEXLineTypeSolid    1
  307. #define PEXLineTypeDashed    2
  308. #define PEXLineTypeDotted    3
  309. #define PEXLineTypeDashDot    4
  310. /* SurfaceEdgeType */
  311. #define PEXSurfaceEdgeSolid    1
  312. #define PEXSurfaceEdgeDashed    2
  313. #define PEXSurfaceEdgeDotted    3
  314. #define PEXSurfaceEdgeDashDot    4
  315. /* PickDeviceType */
  316. #define    PEXPickDeviceDC_HitBox    1
  317. #define    PEXPickDeviceNPC_HitVolume    2
  318. /* PolylineInterpMethod */
  319. #define PEXPolylineInterpNone    1
  320. #define PEXPolylineInterpColour    2
  321. /* Curve(and Surface)(and Trim Curve)ApproxMethods */
  322. #define PEXApproxImpDep                1
  323. #define    PEXApproxConstantBetweenKnots         2
  324. #define PEXApproxWcsChordalSize            3
  325. #define PEXApproxNpcChordalSize            4
  326. #define PEXApproxDcChordalSize            5
  327. #define PEXCurveApproxWcsChordalDev        6
  328. #define PEXCurveApproxNpcChordalDev        7
  329. #define PEXCurveApproxDcChordalDev        8
  330. #define PEXSurfaceApproxWcsPlanarDev        6
  331. #define PEXSurfaceApproxNpcPlanarDev        7
  332. #define PEXSurfaceApproxDcPlanarDev        8
  333. #define PEXApproxWcsRelative            9
  334. #define PEXApproxNpcRelative            10
  335. #define PEXApproxDcRelative            11
  336. /* ReflectionModel */
  337. #define PEXReflectionNoShading    1
  338. #define PEXReflectionAmbient    2
  339. #define PEXReflectionDiffuse    3
  340. #define PEXReflectionSpecular    4
  341. /* SurfaceInterpMethod */
  342. #define PEXSurfaceInterpNone        1
  343. #define PEXSurfaceInterpColour        2
  344. #define PEXSurfaceInterpDotProduct    3
  345. #define PEXSurfaceInterpNormal        4
  346. /* ModelClipOperator */
  347. #define PEXModelClipReplace        1
  348. #define PEXModelClipIntersection    2
  349. /* LightType */
  350. #define PEXLightAmbient            1
  351. #define PEXLightWcsVector        2
  352. #define PEXLightWcsPoint        3
  353. #define PEXLightWcsSpot            4
  354. /* ColourType */
  355. #define PEXIndexedColour    0
  356. #define PEXRgbFloatColour    1
  357. #define PEXCieFloatColour    2
  358. #define PEXHsvFloatColour    3
  359. #define PEXHlsFloatColour    4
  360. #define PEXRgb8Colour        5
  361. #define PEXRgb16Colour        6
  362. #define PEXMaxColour        6
  363. /* FloatFormat */
  364. #define PEXIeee_754_32        1
  365. #define PEXDEC_F_Floating    2
  366. #define PEXIeee_754_64        3
  367. #define PEXDEC_D_Floating    4
  368. /* HlhsrMode */
  369. #define PEXHlhsrOff        1
  370. #define PEXHlhsrZBuffer        2
  371. #define PEXHlhsrPainters    3
  372. #define PEXHlhsrScanline    4
  373. #define PEXHlhsrHiddenLineOnly    5
  374. /* PromptEchoType */
  375. #define PEXEchoPrimitive    1
  376. #define PEXEchoStructure    2
  377. #define PEXEchoNetwork    3
  378. /* DisplayUpdateMethod */
  379. #define PEXVisualizeEach    1
  380. #define PEXVisualizeEasy    2
  381. #define PEXVisualizeNone    3
  382. #define PEXSimulateSome        4
  383. #define PEXVisualizeWhenever    5
  384. /* ColourApproxType */
  385. #define PEXColourSpace          1
  386. #define PEXColourRange          2
  387. /* ColourApproxMethod */
  388. #define PEXColourApproxRGB      1
  389. #define PEXColourApproxCIE      2
  390. #define PEXColourApproxHSV      3
  391. #define PEXColourApproxHLS      4
  392. #define PEXColourApproxYIQ      5
  393. /* RenderingColourModel    */
  394. #define PEXRdrColourModelImpDep    0
  395. #define PEXRdrColourModelRGB    1
  396. #define PEXRdrColourModelCIE    2
  397. #define PEXRdrColourModelHSV    3
  398. #define PEXRdrColourModelHLS    4
  399. /* ParametricSurfaceCharacteristics */
  400. #define    PEXPSCNone        1
  401. #define    PEXPSCImpDep        2
  402. #define    PEXPSCIsoCurves        3
  403. #define    PEXPSCMcLevelCurves    4
  404. #define    PEXPSCWcLevelCurves    5
  405. /* Isoparametric Curves */
  406. #define PEXICUniformPlacement        0
  407. #define PEXICNonuniformPlacement    1
  408.  
  409. /* Clipping */
  410. #define PEXClipXY         0x0001
  411. #define PEXClipBack         0x0002
  412. #define PEXClipFront         0x0004
  413.  
  414. #define PEXClip            0
  415. #define PEXNoClip        1
  416.  
  417. /* Implementation Dependent Constant Names */
  418. #define PEXIDDitheringSupported         1
  419. #define PEXIDMaxEdgeWidth         2
  420. #define PEXIDMaxLineWidth         3
  421. #define PEXIDMaxMarkerSize         4
  422. #define PEXIDMaxModelClipPlanes         5
  423. #define PEXIDMaxNameSetNames         6
  424. #define PEXIDMaxNonAmbientLights     7
  425. #define PEXIDMaxNURBOrder         8
  426. #define PEXIDMaxTrimCurveOrder         9
  427. #define PEXIDMinEdgeWidth        10
  428. #define PEXIDMinLineWidth        11
  429. #define PEXIDMinMarkerSize        12
  430. #define PEXIDNominalEdgeWidth        13
  431. #define PEXIDNominalLineWidth        14
  432. #define PEXIDNominalMarkerSize        15
  433. #define PEXIDNumSupportedEdgeWidths    16
  434. #define PEXIDNumSupportedLineWidths    17
  435. #define PEXIDNumSupportedMarkerSizes    18
  436. #define PEXIDBestColourApproximation    19
  437. #define PEXIDTransparencySupported    20
  438. #define PEXIDDoubleBufferingSupported    21
  439. #define PEXIDChromaticityRedU        22
  440. #define PEXIDChromaticityRedV        23
  441. #define PEXIDLuminanceRed        24
  442. #define PEXIDChromaticityGreenU        25
  443. #define PEXIDChromaticityGreenV        26
  444. #define PEXIDLuminanceGreen        27
  445. #define PEXIDChromaticityBlueU        28
  446. #define PEXIDChromaticityBlueV        29
  447. #define PEXIDLuminanceBlue        30
  448. #define PEXIDChromaticityWhiteU        31
  449. #define PEXIDChromaticityWhiteV        32
  450. #define PEXIDLuminanceWhite        33
  451.  
  452. /* Constants for IDRgbBestApproximation */
  453. #define PEXColourApproxAnyValues    0
  454. #define PEXColourApproxPowersOf2    1
  455.  
  456. /** To convert a bit index to a mask number and a mask value, assuming
  457.  ** 32 bit wide words.  For example, a bitIndex of 5 will return 
  458.  ** maskNum == 0 and maskValue == (1 << 5) = 32, while a bitIndex of 39
  459.  ** will return maskNum == 1 and maskValue == (1 << 7) == 128 
  460.  **/
  461. #define PEX_BITNUM_TO_BITMASK(bitIndex, maskNum, maskValue) \
  462.     maskNum    = (bitIndex) / 32; \
  463.     maskValue    = ((unsigned)1L << ((bitIndex) % 32));
  464.  
  465. #define CHECK_BITMASK_ARRAY(mask,bitIndex) \
  466.     if (mask[((bitIndex)/32)] & ((unsigned)1L << ((bitIndex) % 32)))
  467.  
  468. #define PEX_BITMASK(i) ((unsigned)1 << ((i) & 31))
  469. #define PEX_MASKIDX(i) ((i) >> 5)
  470. #define PEX_MASKWORD(buf, i) buf[PEX_MASKIDX(i)]
  471. #define PEX_BITSET(buf, i) PEX_MASKWORD(buf, i) |= PEX_BITMASK(i)
  472. #define PEX_BITCLEAR(buf, i) PEX_MASKWORD(buf, i) &= ~PEX_BITMASK(i)
  473. #define PEX_GETBIT(buf, i) (PEX_MASKWORD(buf, i) & PEX_BITMASK(i))
  474.  
  475. #define PEXMSGetWksInfo         2
  476. #define PEXMSPipeline           3
  477.  
  478. /* Pipeline Context */
  479. #define PEXPCMarkerType             0
  480. #define PEXPCMarkerScale         1
  481. #define PEXPCMarkerColour         2
  482. #define PEXPCMarkerBundleIndex         3
  483. #define PEXPCTextFont             4
  484. #define PEXPCTextPrecision         5
  485. #define PEXPCCharExpansion         6
  486. #define PEXPCCharSpacing         7
  487. #define PEXPCTextColour             8
  488. #define PEXPCCharHeight             9
  489. #define PEXPCCharUpVector        10
  490. #define PEXPCTextPath            11
  491. #define PEXPCTextAlignment        12
  492. #define PEXPCAtextHeight        13
  493. #define PEXPCAtextUpVector        14
  494. #define PEXPCAtextPath            15
  495. #define PEXPCAtextAlignment        16
  496. #define PEXPCAtextStyle            17
  497. #define PEXPCTextBundleIndex        18
  498. #define PEXPCLineType            19
  499. #define PEXPCLineWidth            20
  500. #define PEXPCLineColour            21
  501. #define PEXPCCurveApproximation        22
  502. #define PEXPCPolylineInterp        23
  503. #define PEXPCLineBundleIndex        24
  504. #define PEXPCInteriorStyle        25
  505. #define PEXPCInteriorStyleIndex        26
  506. #define PEXPCSurfaceColour        27
  507. #define PEXPCSurfaceReflAttr        28
  508. #define PEXPCSurfaceReflModel        29
  509. #define PEXPCSurfaceInterp        30
  510. #define PEXPCBfInteriorStyle        31
  511.  
  512. #define PEXPCBfInteriorStyleIndex    32
  513. #define PEXPCBfSurfaceColour        33
  514. #define PEXPCBfSurfaceReflAttr        34
  515. #define PEXPCBfSurfaceReflModel        35
  516. #define PEXPCBfSurfaceInterp        36
  517. #define PEXPCSurfaceApproximation    37
  518. #define PEXPCCullingMode        38
  519. #define PEXPCDistinguishFlag        39
  520. #define PEXPCPatternSize        40
  521. #define PEXPCPatternRefPt        41
  522. #define PEXPCPatternRefVec1        42
  523. #define PEXPCPatternRefVec2        43
  524. #define PEXPCInteriorBundleIndex    44
  525. #define PEXPCSurfaceEdgeFlag        45
  526. #define PEXPCSurfaceEdgeType        46
  527. #define PEXPCSurfaceEdgeWidth        47
  528. #define PEXPCSurfaceEdgeColour        48
  529. #define PEXPCEdgeBundleIndex        49
  530. #define PEXPCLocalTransform        50
  531. #define PEXPCGlobalTransform        51
  532. #define PEXPCModelClip            52
  533. #define PEXPCModelClipVolume        53
  534. #define PEXPCViewIndex            54
  535. #define PEXPCLightState            55
  536. #define PEXPCDepthCueIndex        56
  537. #define PEXPCSetAsfValues        57
  538. #define PEXPCPickId            58
  539. #define PEXPCHlhsrIdentifier        59
  540. #define PEXPCNameSet            60
  541. #define PEXPCColourApproxIndex        61
  542. #define PEXPCRenderingColourModel    62
  543. #define PEXPCParaSurfCharacteristics    63
  544. #define PEXMaxPCIndex    63    
  545.  
  546. /* Renderer Bitmasks */
  547. #define PEXRDPipelineContext         (1L<<0)
  548. #define PEXRDCurrentPath         (1L<<1)
  549. #define PEXRDMarkerBundle         (1L<<2)
  550. #define PEXRDTextBundle             (1L<<3)
  551. #define PEXRDLineBundle             (1L<<4)
  552. #define PEXRDInteriorBundle         (1L<<5)
  553. #define PEXRDEdgeBundle             (1L<<6)
  554. #define PEXRDViewTable             (1L<<7)
  555. #define PEXRDColourTable         (1L<<8)
  556. #define PEXRDDepthCueTable         (1L<<9)
  557. #define PEXRDLightTable            (1L<<10)
  558. #define PEXRDColourApproxTable        (1L<<11)
  559. #define PEXRDPatternTable        (1L<<12)
  560. #define PEXRDTextFontTable        (1L<<13)
  561. #define PEXRDHighlightIncl        (1L<<14)
  562. #define PEXRDHighlightExcl        (1L<<15)
  563. #define PEXRDInvisibilityIncl        (1L<<16)
  564. #define PEXRDInvisibilityExcl        (1L<<17)
  565. #define PEXRDRendererState        (1L<<18)
  566. #define PEXRDHlhsrMode            (1L<<19)
  567. #define PEXRDNpcSubvolume        (1L<<20)
  568. #define PEXRDViewport            (1L<<21)
  569. #define PEXRDClipList            (1L<<22)
  570. #define PEXMaxRDShift    22
  571.  
  572. /* Renderer Dynamics Bitmasks */
  573. /*    tables              */
  574. #define PEXDynMarkerBundle             (1L<<0)
  575. #define PEXDynTextBundle             (1L<<1)
  576. #define PEXDynLineBundle             (1L<<2)
  577. #define PEXDynInteriorBundle             (1L<<3)
  578. #define PEXDynEdgeBundle             (1L<<4)
  579. #define PEXDynViewTable                 (1L<<5)
  580. #define PEXDynColourTable             (1L<<6)
  581. #define PEXDynDepthCueTable             (1L<<7)
  582. #define PEXDynLightTable             (1L<<8)
  583. #define PEXDynColourApproxTable             (1L<<9)
  584. #define PEXDynPatternTable            (1L<<10)
  585. #define PEXDynTextFontTable            (1L<<11)
  586. #define PEXDynMarkerBundleContents        (1L<<12)
  587. #define PEXDynTextBundleContents        (1L<<13)
  588. #define PEXDynLineBundleContents        (1L<<14)
  589. #define PEXDynInteriorBundleContents        (1L<<15)
  590. #define PEXDynEdgeBundleContents        (1L<<16)
  591. #define PEXDynViewTableContents            (1L<<17)
  592. #define PEXDynColourTableContents        (1L<<18)
  593. #define PEXDynDepthCueTableContents        (1L<<19)
  594. #define PEXDynLightTableContents        (1L<<20)
  595. #define PEXDynColourApproxContents        (1L<<21)
  596. #define PEXDynPatternTableContents        (1L<<22)
  597. #define PEXDynTextFontTableContents        (1L<<23)
  598. /*    namesets          */
  599. #define PEXDynHighlightNameset             (1L<<0)
  600. #define PEXDynInvisibilityNameset         (1L<<1)
  601. #define PEXDynHighlightNamesetContents        (1L<<12)
  602. #define PEXDynInvisibilityNamesetContents    (1L<<13)
  603. /*    attributes          */
  604. #define PEXDynHlhsrMode                 (1L<<0)
  605. #define PEXDynNpcSubvolume             (1L<<1)
  606. #define PEXDynViewport                 (1L<<2)
  607. #define PEXDynClipList                 (1L<<3)
  608.  
  609. #define PEXElementType         (1L<<0)
  610. #define PEXElementSize         (1L<<1)
  611. #define PEXElementData         (1L<<2)
  612.  
  613. /* Search Context Bitmasks */
  614. #define PEXSCPosition            (1L<<0)
  615. #define PEXSCDistance            (1L<<1)
  616. #define PEXSCCeiling             (1L<<2)
  617. #define PEXSCModelClipFlag     (1L<<3)
  618. #define PEXSCStartPath           (1L<<4)
  619. #define PEXSCNormalList          (1L<<5)
  620. #define PEXSCInvertedList        (1L<<6)
  621.  
  622. /* Phigs Workstation Attribute Bitmasks */
  623. #define PEXPWDisplayUpdate    0
  624. #define PEXPWVisualState    1
  625. #define PEXPWDisplaySurface    2
  626. #define PEXPWViewUpdate        3
  627. #define PEXPWDefinedViews    4
  628. #define PEXPWWksUpdate        5
  629. #define PEXPWReqNpcSubvolume    6
  630. #define PEXPWCurNpcSubvolume    7
  631. #define PEXPWReqWksViewport    8
  632. #define PEXPWCurWksViewport    9
  633. #define PEXPWHlhsrUpdate    10
  634. #define PEXPWReqHlhsrMode    11
  635. #define PEXPWCurHlhsrMode    12
  636. #define PEXPWDrawable        13
  637. #define PEXPWMarkerBundle    14
  638. #define PEXPWTextBundle        15
  639. #define PEXPWLineBundle        16
  640. #define PEXPWInteriorBundle    17
  641. #define PEXPWEdgeBundle        18
  642. #define PEXPWColourTable    19
  643. #define PEXPWDepthCueTable    20
  644. #define PEXPWLightTable        21
  645. #define PEXPWColourApproxTable    22
  646. #define PEXPWPatternTable    23
  647. #define PEXPWTextFontTable    24
  648. #define PEXPWHighlightIncl    25
  649. #define PEXPWHighlightExcl    26
  650. #define PEXPWInvisibilityIncl    27
  651. #define PEXPWInvisibilityExcl    28
  652. #define PEXPWPostedStructures    29
  653. #define PEXPWNumPriorities    30
  654. #define PEXPWBufferUpdate    31
  655.  
  656. #define PEXPWReqBufferMode    32
  657. #define PEXPWCurBufferMode    33
  658.  
  659. /* Indices for GetDynamics */
  660. #define PEXPWDViewRep             0
  661. #define PEXPWDMarkerBundle         1
  662. #define PEXPWDTextBundle         2
  663. #define PEXPWDLineBundle         3
  664. #define PEXPWDInteriorBundle         4
  665. #define PEXPWDEdgeBundle         5
  666. #define PEXPWDColourTable         6
  667. #define PEXPWDPatternTable         7
  668. #define PEXPWDWksTransform         8
  669. #define PEXPWDHighlightFilter         9
  670. #define PEXPWDInvisibilityFilter    10
  671. #define PEXPWDHlhsrMode            11
  672. #define PEXPWDStructureModify        12
  673. #define PEXPWDPostStructure        13
  674. #define PEXPWDUnpostStructure        14
  675. #define PEXPWDDeleteStructure        15
  676. #define PEXPWDReferenceModify        16
  677. #define PEXPWDBufferModify        17
  678. #define PEXPWDLightTable        18
  679. #define PEXPWDDepthCueTable        19
  680. #define PEXPWDColourApproxTable        20
  681.  
  682. /* Pick Device Bitmasks */
  683. #define PEXPDPickStatus            (1L<<0)
  684. #define PEXPDPickPath            (1L<<1)
  685. #define PEXPDPickPathOrder        (1L<<2)
  686. #define PEXPDPickIncl            (1L<<3)
  687. #define PEXPDPickExcl                (1L<<4)
  688. #define PEXPDPickDataRec        (1L<<5)
  689. #define PEXPDPickPromptEchoType        (1L<<6)
  690. #define PEXPDPickEchoVolume        (1L<<7)
  691. #define PEXPDPickEchoSwitch        (1L<<8)
  692.  
  693. /* Pick Measure Bitmasks */
  694. #define PEXPMStatus            (1L<<0)
  695. #define PEXPMPath            (1L<<1)
  696.  
  697. /* Errors */
  698. #define PEXColourTypeError         0
  699. #define PEXRendererStateError         1
  700. #define PEXFloatingPointFormatError     2
  701. #define PEXLabelError             3
  702. #define PEXLookupTableError         4
  703. #define PEXNameSetError             5
  704. #define PEXPathError             6
  705. #define PEXFontError             7
  706. #define PEXPhigsWksError         8
  707. #define PEXPickMeasureError         9
  708. #define PEXPipelineContextError        10
  709. #define PEXRendererError        11
  710. #define PEXSearchContextError        12
  711. #define PEXStructureError        13
  712. #define PEXOutputCommandError        14
  713. #define PEXMaxError                     14
  714.  
  715. /* Requests */
  716. #define PEX_GetExtensionInfo         1
  717. #define PEX_GetEnumeratedTypeInfo     2
  718. #define PEX_GetImpDepConstants          3
  719. #define PEX_CreateLookupTable         4
  720. #define PEX_CopyLookupTable         5
  721. #define PEX_FreeLookupTable         6
  722. #define PEX_GetTableInfo         7
  723. #define PEX_GetPredefinedEntries     8
  724. #define PEX_GetDefinedIndices         9
  725. #define PEX_GetTableEntry        10
  726. #define PEX_GetTableEntries        11
  727. #define PEX_SetTableEntries        12
  728. #define PEX_DeleteTableEntries        13
  729. #define PEX_CreatePipelineContext    14
  730. #define PEX_CopyPipelineContext        15
  731. #define PEX_FreePipelineContext        16
  732. #define PEX_GetPipelineContext        17
  733. #define PEX_ChangePipelineContext    18
  734. #define PEX_CreateRenderer        19
  735. #define PEX_FreeRenderer        20
  736. #define PEX_ChangeRenderer        21
  737. #define PEX_GetRendererAttributes    22
  738. #define PEX_GetRendererDynamics        23
  739. #define PEX_BeginRendering        24
  740. #define PEX_EndRendering        25
  741. #define PEX_BeginStructure        26
  742. #define PEX_EndStructure        27
  743. #define PEX_RenderOutputCommands    28
  744. #define PEX_RenderNetwork        29
  745. #define PEX_CreateStructure        30
  746. #define PEX_CopyStructure        31
  747. #define PEX_DestroyStructures        32
  748. #define PEX_GetStructureInfo        33
  749. #define PEX_GetElementInfo        34
  750. #define PEX_GetStructuresInNetwork    35
  751. #define PEX_GetAncestors        36
  752. #define PEX_GetDescendants        37
  753. #define PEX_FetchElements        38
  754. #define PEX_SetEditingMode        39    
  755. #define PEX_SetElementPointer        40
  756. #define PEX_SetElementPointerAtLabel    41
  757. #define PEX_ElementSearch        42
  758. #define PEX_StoreElements        43
  759. #define PEX_DeleteElements        44
  760. #define PEX_DeleteElementsToLabel    45
  761. #define PEX_DeleteBetweenLabels        46
  762. #define PEX_CopyElements        47
  763. #define PEX_ChangeStructureRefs        48
  764. #define PEX_CreateNameSet        49
  765. #define PEX_CopyNameSet            50
  766. #define PEX_FreeNameSet            51
  767. #define PEX_GetNameSet            52
  768. #define PEX_ChangeNameSet        53
  769. #define PEX_CreateSearchContext        54
  770. #define PEX_CopySearchContext        55
  771. #define PEX_FreeSearchContext        56
  772. #define PEX_GetSearchContext        57
  773. #define PEX_ChangeSearchContext        58
  774. #define PEX_SearchNetwork        59
  775. #define PEX_CreatePhigsWks        60
  776. #define PEX_FreePhigsWks        61
  777. #define PEX_GetWksInfo            62
  778. #define PEX_GetDynamics            63
  779. #define PEX_GetViewRep            64
  780. #define PEX_RedrawAllStructures        65
  781. #define PEX_UpdateWorkstation        66
  782. #define PEX_RedrawClipRegion        67
  783. #define PEX_ExecuteDeferredActions    68
  784. #define PEX_SetViewPriority        69
  785. #define PEX_SetDisplayUpdateMode    70
  786. #define PEX_MapDCtoWC            71
  787. #define PEX_MapWCtoDC            72
  788. #define PEX_SetViewRep            73
  789. #define PEX_SetWksWindow        74
  790. #define PEX_SetWksViewport        75
  791. #define PEX_SetHlhsrMode        76
  792. #define PEX_SetWksBufferMode        77
  793. #define PEX_PostStructure        78
  794. #define PEX_UnpostStructure        79
  795. #define PEX_UnpostAllStructures        80
  796. #define PEX_GetWksPostings        81
  797. #define PEX_GetPickDevice        82
  798. #define PEX_ChangePickDevice        83
  799. #define PEX_CreatePickMeasure        84
  800. #define PEX_FreePickMeasure        85
  801. #define PEX_GetPickMeasure        86
  802. #define PEX_UpdatePickMeasure        87
  803. #define PEX_OpenFont            88
  804. #define PEX_CloseFont            89
  805. #define PEX_QueryFont            90
  806. #define PEX_ListFonts            91
  807. #define PEX_ListFontsWithInfo        92
  808. #define PEX_QueryTextExtents         93
  809. #define PEXMaxRequest            93
  810.  
  811. /* Output Commands */
  812. #define PEXOCAll              0
  813. #define PEXOCMarkerType              1
  814. #define PEXOCMarkerScale          2
  815. #define PEXOCMarkerColourIndex          3
  816. #define PEXOCMarkerColour          4
  817. #define PEXOCMarkerBundleIndex          5
  818. #define PEXOCTextFontIndex          6
  819. #define PEXOCTextPrecision          7
  820. #define PEXOCCharExpansion          8
  821. #define PEXOCCharSpacing          9
  822. #define PEXOCTextColourIndex         10
  823. #define PEXOCTextColour             11
  824. #define PEXOCCharHeight             12
  825. #define PEXOCCharUpVector         13
  826. #define PEXOCTextPath             14
  827. #define PEXOCTextAlignment         15
  828. #define PEXOCAtextHeight         16
  829. #define PEXOCAtextUpVector         17
  830. #define PEXOCAtextPath             18
  831. #define PEXOCAtextAlignment         19
  832. #define PEXOCAtextStyle             20
  833. #define PEXOCTextBundleIndex         21
  834. #define PEXOCLineType             22
  835. #define PEXOCLineWidth             23
  836. #define PEXOCLineColourIndex         24
  837. #define PEXOCLineColour             25
  838. #define PEXOCCurveApproximation         26
  839. #define PEXOCPolylineInterp         27
  840. #define PEXOCLineBundleIndex         28
  841. #define PEXOCInteriorStyle         29
  842. #define PEXOCInteriorStyleIndex         30
  843. #define PEXOCSurfaceColourIndex         31
  844. #define PEXOCSurfaceColour         32
  845. #define PEXOCSurfaceReflAttr         33
  846. #define PEXOCSurfaceReflModel         34
  847. #define PEXOCSurfaceInterp         35
  848. #define PEXOCBfInteriorStyle         36
  849. #define PEXOCBfInteriorStyleIndex     37
  850. #define PEXOCBfSurfaceColourIndex     38
  851. #define PEXOCBfSurfaceColour         39
  852. #define PEXOCBfSurfaceReflAttr         40
  853. #define PEXOCBfSurfaceReflModel         41
  854. #define PEXOCBfSurfaceInterp         42
  855. #define PEXOCSurfaceApproximation     43
  856. #define PEXOCCullingMode         44
  857. #define PEXOCDistinguishFlag         45
  858. #define PEXOCPatternSize         46
  859. #define PEXOCPatternRefPt         47
  860. #define PEXOCPatternAttr         48
  861. #define PEXOCInteriorBundleIndex     49
  862. #define PEXOCSurfaceEdgeFlag         50
  863. #define PEXOCSurfaceEdgeType         51
  864. #define PEXOCSurfaceEdgeWidth         52
  865. #define PEXOCSurfaceEdgeColourIndex     53
  866. #define PEXOCSurfaceEdgeColour         54
  867. #define PEXOCEdgeBundleIndex         55
  868. #define PEXOCSetAsfValues         56
  869. #define PEXOCLocalTransform         57
  870. #define PEXOCLocalTransform2D         58
  871. #define PEXOCGlobalTransform         59
  872. #define PEXOCGlobalTransform2D         60
  873. #define PEXOCModelClip             61
  874. #define PEXOCModelClipVolume         62
  875. #define PEXOCModelClipVolume2D         63
  876. #define PEXOCRestoreModelClip         64
  877. #define PEXOCViewIndex             65
  878. #define PEXOCLightState             66
  879. #define PEXOCDepthCueIndex         67
  880. #define PEXOCPickId             68
  881. #define PEXOCHlhsrIdentifier         69
  882. #define PEXOCColourApproxIndex         70
  883. #define PEXOCRenderingColourModel     71
  884. #define PEXOCParaSurfCharacteristics     72
  885. #define PEXOCAddToNameSet         73
  886. #define PEXOCRemoveFromNameSet         74
  887. #define PEXOCExecuteStructure         75
  888. #define PEXOCLabel             76
  889. #define PEXOCApplicationData         77
  890. #define PEXOCGse             78
  891. #define PEXOCMarker             79
  892. #define PEXOCMarker2D             80
  893. #define PEXOCText             81
  894. #define PEXOCText2D             82
  895. #define PEXOCAnnotationText         83
  896. #define PEXOCAnnotationText2D         84
  897. #define PEXOCPolyline             85
  898. #define PEXOCPolyline2D             86
  899. #define PEXOCPolylineSet         87
  900. #define PEXOCNurbCurve             88
  901. #define PEXOCFillArea             89
  902. #define PEXOCFillArea2D             90
  903. #define PEXOCExtFillArea         91
  904. #define PEXOCFillAreaSet         92
  905. #define PEXOCFillAreaSet2D         93
  906. #define PEXOCExtFillAreaSet         94
  907. #define PEXOCTriangleStrip         95
  908. #define PEXOCQuadrilateralMesh         96
  909. #define PEXOCSOFAS             97
  910. #define PEXOCNurbSurface         98
  911. #define PEXOCCellArray             99
  912. #define PEXOCCellArray2D        100
  913. #define PEXOCExtCellArray        101
  914. #define PEXOCGdp            102
  915. #define PEXOCGdp2D            103
  916. #define PEXMaxOC            103
  917.  
  918. #define PEXOCNil            0xffff
  919.  
  920. #endif /* PEX.h */
  921.  
  922.